package com.atguigu.junit;

import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

/**
 * @Author: shenhao
 * @CreatTime: 2024/10/12 21:15
 * @Version: 1.0
 */
class CalcDemoTestV3 {
    //@BeforeAll @BeforeAll用于指示应在当前测试类中的所有测试之前执行带注释的方法。
    //与方法相反 @BeforeEach ， @BeforeAll 对于给定的测试类，方法只执行一次。 用于静态的
    static StringBuffer stringBuffer = null;

    @BeforeAll //需要使用static修饰
    static void setUpBeforeClass() throws Exception {
        stringBuffer = new StringBuffer("hello");
        System.out.println("============="+stringBuffer.length());
    }


    @AfterAll // 只执行一次
    static void tearDownAfterClass() throws Exception {
        stringBuffer.append("world");
        System.out.println("============="+stringBuffer.length());
        System.out.println(stringBuffer);
    }
    CalcDemo calcDemo = null; // 要提成成员变量
    @BeforeEach // 在每个之前 都执行
    void setUp() {
        System.out.println("----come in Before Each----");
        calcDemo = new CalcDemo();
    }

    @AfterEach // 在每个之后 都执行
    void tearDown() {
        System.out.println("----come in After Each----");
        calcDemo = null;//资源释放
    }

    @Test
    void add() {
        assertEquals(60,calcDemo.add(30,30));
    }

    @Test
    void sub() {
        assertEquals(0,calcDemo.sub(30,30));
    }
}